package com.nts.pmchelperdemo3.constant;


import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class OrderStatusConstant {
    // 接单中（初始状态）
    public static final Integer PENDING = 0;
    // 磨刀中（已生成磨刀排班）
    public static final Integer SHARPENING = 1;
    // 磨刀完成（待涂层）
    public static final Integer SHARPEN_DONE = 2;
    // 涂层中（已生成涂层排班）
    public static final Integer COATING = 3;
    // 涂层完成（已完工）
    public static final Integer COATING_DONE = 4;
    // 已合并（被合并到其他订单）
    public static final Integer MERGED = 5;

    // 合法的状态流转规则：key=当前状态，value=允许流转的目标状态
    public static final Map<Integer, List<Integer>> VALID_TRANSITIONS = new HashMap<>();
    static {
        VALID_TRANSITIONS.put(PENDING, Arrays.asList(SHARPENING, MERGED)); // 接单中→磨刀中/已合并
        VALID_TRANSITIONS.put(SHARPENING, Arrays.asList(SHARPEN_DONE)); // 磨刀中→磨刀完成
        VALID_TRANSITIONS.put(SHARPEN_DONE, Arrays.asList(COATING)); // 磨刀完成→涂层中
        VALID_TRANSITIONS.put(COATING, Arrays.asList(COATING_DONE));// 涂层中→涂层完成
        VALID_TRANSITIONS.put(MERGED, Arrays.asList(PENDING));//已合并转换为接单中

    }
}